package com.wdm.sms.service.token;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.wdm.sms.commonutil.utils.r.R;
import com.wdm.sms.entity.User;
import com.wdm.sms.service.token.impl.ITokenService;
import org.springframework.stereotype.Service;

import java.util.Date;

/**
 * @author: wudaiming
 * @date: 2023/3/13
 * @version: 1I0
 */
@Service
public class TokenService implements ITokenService {

    @Override
    public R getToken(User user) {
        // 过期时间，5分钟
        long EXPIRE_TIME = 5*60*1000;
        // 生成过期时间
        Date expireDate = new Date(System.currentTimeMillis()+EXPIRE_TIME);
        String token = JWT.create().withAudience(user.getName())// 将 user Name 存到 token 里面
                .withExpiresAt(expireDate)// 设置过期时间
                .sign(Algorithm.HMAC256(user.getPassword()));// 以 password 作为 token 的**
        return R.ok(token);
    }
}